草庐IT

C++ ifstream 到 char *

全部标签

c++ - 传递与 `swprintf` %s"` 说明符匹配的 `char const*` 时 `L"的行为

我正在编写一个Excel插件,需要生成wchar_tExcel的输出(尽管在内部,我们是100%char,并且实际上将char限制为纯ASCII)。有一次,我正在使用swprintf进行转换:staticwchar_tbuffer[32369];buffer[0]=swprintf(buffer+1,sizeof(buffer)-1,L"#%s!",message);Excel显示某种CJK字符,尽管message(typecharconst*)是一个以null结尾的字符串没有可打印ASCII之外的字符(十六进制值0x20-0x7E)。我已经在一个小测试程序中尝试过,以十六进制转储生成

c++ - Visual Studio 2010 Arduino cpp 错误 : argument of type "char *" is incompatible with parameter of type "LPCWSTR"

我正在尝试设置一个arduinouno用于与visualstudio2010中的C++程序进行串行端口通信。我正在使用此处找到的代码:http://playground.arduino.cc/Interfacing/CPPWindows不幸的是,.cpp文件在第9行为变量“portName”提供了以下消息:错误:“char*”类型的参数与“LPCWSTR”类型的参数不兼容我不明白这个错误消息,并尝试了一些不同的方法来修复它。任何帮助将不胜感激! 最佳答案 鉴于您问题中的代码链接,问题似乎出在这里:Serial::Serial(cha

C++ std::ifstream 在构造函数中的问题

这段代码有问题:#includestructA{A(std::ifstreaminput){//someactions}};intmain(){std::ifstreaminput("somefile.xxx");while(input.good()){A(input);}return0;}G++给我输出这个:$g++file.cppfile.cpp:Infunction`intmain()':file.cpp:17:error:nomatchingfunctionforcallto`A::A()'file.cpp:4:note:candidatesare:A::A(constA&)f

C++ map::find char * 与 char []

我正在使用C++map在我的程序中实现字典。我的函数获取一个结构作为参数,并且应该返回基于structure.name成员的关联值,该成员是charnamed[32]。以下代码演示了我的问题:mapmyMap;myMap.insert(pair("test","myTest"));char*p="test";charbuf[5]={'\0'};strcpy(buf,"test");coutsecondsecondsecond我不确定为什么第三种情况不起作用,我应该怎么做才能让它起作用。我调试了上面的代码以观察传递的值,但我仍然无法找出问题所在。谢谢! 最佳答

c++ - 作为 char* 传递后获取数组的长度

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:SizeofanarrayintheCprogramminglanguage?我有以下形式的代码:voidarrLen(char*array){//printlength}intmain(){charbytes[16];arrLen(bytes);}我需要做的是获取底层数组的长度并将其打印出来。问题是数组可能包含空字符,因此strlen将不起作用。有什么办法可以做到这一点,还是我必须将它作为char[]而不是char*传递?

C++ ifstream 不读取\n?

我正在尝试对文本文件的每行进行操作,而我现在的方式是,我的ifstream对象没有检测到\n每行的字符,这是该项目所必需的。这是我现在的方式:std::ifstreaminstream;instream>>value;while(value!='\n'){//docodeandsuch}但是当我让它运行循环时,我得到的只是程序中所有内容的一行。虽然它完全按照循环中的预期进行,但我需要识别\n。这是我的.txt文件:LXXXVIIcCxiXMCCCLIVCXXXLLMMDCLXXIIIDXLCCMCdLxxvIXZXIV就是这样。我不能改变它。 最佳答案

C++/阿杜伊诺 : How do I convert a string/char-array to byte?

我要转换charlineOneC[8]={0,1,1,0,0,0,0,1};进入bytelineOneB=B01100001;我如何在C++/Arduino中执行此操作? 最佳答案 我不确定Adruino平台施加的具体限制,但这应该适用于任何标准编译器。charGetBitArrayAsByte(constcharinputArray[8]){charresult=0;for(intidx=0;idxAtestofthiscodeisnowonCodepad,如果说有帮助。 关于C++/

c++ - 如何在没有 "ifstream"任何字符的情况下通过 "getting"将文件指针移动到下一个字符,就像 "fseek"一样?

seekg使用ios作为第二个参数,ios可以设置为end或beg或其他一些值,如下所示:http://www.cplusplus.com/reference/iostream/ios/我只是想让指针移动到下一个字符,如何通过ifstream实现?编辑好吧,问题是我想要在ifstream中有一个类似于fseek的函数,它可以在不读取任何内容的情况下移动指针。 最佳答案 ifstreamfin(...);//...fin.get();// 关于c++-如何在没有"ifstream"任何字符

c++ - 为什么 itoa() 修改传递的 char[] 而不是返回 char[]?

itoa()函数返回void并将结果存储在传递给它的char[]数组中而不是返回char[]有什么原因吗? 最佳答案 原因是函数期望调用者分配和提供缓冲区。这在C中是非常标准的。如果函数返回一个新的缓冲区,调用者将不得不负责释放它,这将强制动态分配缓冲区。通过要求调用者提供缓冲区,该函数允许为缓冲区分配自动存储,或动态分配。事实上,我熟悉的itoa版本确实会返回调用者提供的缓冲区,而不是返回void。 关于c++-为什么itoa()修改传递的char[]而不是返回char[]?,我们在S

c++ - 为什么 const char[] 和 const char* 的比较不同?

假设我有以下代码:constcharstr1[]="asdasd";constcharstr2[]="asdasd";constchar*str3="dsadsa";constchar*str4="dsadsa";if(str1==str2){cout结果是“str3==str4”。为什么? 最佳答案 对于C++str3和str4指向相同的stringliterals,Thecompilerisallowed,butnotrequired,tocombinestorageforequaloroverlappingstringlite